﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using Crosland.Automotriz.Seguridad.Business;
using Crosland.Automotriz.Facade.Facade;
using Crosland.Automotriz.Facade.Interface;
using Crosland.Automotriz.Logic.Linq;
using Crosland.Automotriz.Core;
using Crosland.Automotriz.Logic.ControlExeption;
using DevExpress.Web.ASPxGridView;
using System.Drawing;

namespace Crosland.Automotriz.Web.Repuestos
{
    public partial class wFrmManualesPartesVehiculosSistemaSub : System.Web.UI.Page
    {
        iFacadeSistema BL_T_Man_SistemaSub = new FacadeSistema();
        string ruta = ConfigurationManager.AppSettings[DatosConfiguracion.RutSistema];
        string idSeguridad = ConfigurationManager.AppSettings["Seguridad"];

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", "JavaScript:confirmSubmitResult();", true);
                listadoT_Sistema();

                gvlistado.FocusedRowIndex = -1;
                chekedEstadoN.Text = "Inactivo";
            }

        }

        void listadoT_Sistema()
        {
            string des_imagen = (string)Session["DES_IMAGEN"];
            gvlistado.DataSource = BL_T_Man_SistemaSub.listar_Sub_Sistema2();
            gvlistado.DataBind();
        }

        protected void gvlistado_AfterPerformCallback(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewAfterPerformCallbackEventArgs e)
        {
            listadoT_Sistema();
        }

        protected void btnGrabarSistema_Click(object sender, EventArgs e)
        {
            int seleccion = Convert.ToInt32(gvlistado.FocusedRowIndex.ToString());
            if (seleccion != -1)
            {
                T_MAN_SISTEMA obj_t_man_sistema = new T_MAN_SISTEMA();

                obj_t_man_sistema.ID_SISTEMA = Convert.ToInt32(txtId_Sistema.Text);
                obj_t_man_sistema.DES_SISTEMA = txtDescripcionEsp.Text;
                obj_t_man_sistema.DES_SISTEMA_INGLES = txtDescripcionIng.Text;
                int indIndEliminado = 0;
                if (chekedEstadoM.Checked == true)
                {
                    indIndEliminado = 0;
                }
                else
                {
                    indIndEliminado = 1;
                }
                obj_t_man_sistema.IND_ELIMINAR = indIndEliminado;     

                try
                {
                    if (BL_T_Man_SistemaSub.Modificar_Sub_Sistema(obj_t_man_sistema))
                    {
                        listadoT_Sistema();

                        string script = "pcModificarSistema.Hide();ShowCreateAccountWindow7();";
                        ScriptManager.RegisterStartupScript(this, GetType(), "carga", script, true);
                    }
                    else
                    {
                    }

                }
                catch (RunException exc)
                {
                    GuardarExceptionLog(exc.Message, exc, "btnGrabarSistema_Click");
                    MensajesError(exc.Message, exc, "btnGrabarSistema_Click");
                }

            }
            else
            {

                string script = "ShowErrorAnular();";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", script, true);

            }

        }

        protected void btnGrabarNew_Click(object sender, EventArgs e)
        {

            if (txtDescripcion.Text == String.Empty || txtDescripcionIngles.Text == String.Empty)
            {
                string script = "pcNuevoSistema.Hide();ShowError();";
                ScriptManager.RegisterStartupScript(this, GetType(), "carga", script, true);
            }
            else
            {
                try
                {
                    T_MAN_SISTEMA obj_t_man_sistema = new T_MAN_SISTEMA();
                    obj_t_man_sistema.ID_SISTEMA = BL_T_Man_SistemaSub.ObtenerIdSistema();
                    obj_t_man_sistema.DES_SISTEMA = txtDescripcion.Text;
                    obj_t_man_sistema.DES_SISTEMA_INGLES = txtDescripcionIngles.Text;
                    int indIndEliminado=0;
                    if(chekedEstadoN.Checked==true){
                    indIndEliminado=0;
                    }else{
                        indIndEliminado=1;
                    }
                    obj_t_man_sistema.IND_ELIMINAR = indIndEliminado;                  
                   

                    if (BL_T_Man_SistemaSub.Insertar_Sub_Sistema(obj_t_man_sistema))
                    {
                        listadoT_Sistema();
                        string script = "pcNuevoSistema.Hide();ShowCreateAccountWindow4()";
                        ScriptManager.RegisterStartupScript(this, GetType(), "carga", script, true);
                    }
                    else
                    {

                    }
                }
                catch (RunException exc)
                {
                    GuardarExceptionLog(exc.Message, exc, "btnGrabarNew_Click");
                    MensajesError(exc.Message, exc, "btnGrabarNew_Click");
                }

            }

        }

        protected void btnAnular_Click(object sender, EventArgs e)
        {
            int seleccion = Convert.ToInt32(gvlistado.FocusedRowIndex.ToString());
            if (seleccion != -1)
            {
                string script = "ShowAnularOK();";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", script, true);
            }
            else
            {
                string script = "ShowErrorAnular();";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", script, true);
            }


        }

        protected void btnModificarSubSistema_Click(object sender, EventArgs e)
        {
            int seleccion = gvlistado.FocusedRowIndex;
            if (seleccion == -1)
            {
                popupErrorAnular.ShowOnPageLoad = true;
                return;

            }

            txtDescripcionEsp.Text = Convert.ToString(gvlistado.GetRowValues(seleccion, "DES_SISTEMA"));
            txtId_Sistema.Text = Convert.ToString(gvlistado.GetRowValues(seleccion, "ID_SISTEMA"));
            txtDescripcionIng.Text = Convert.ToString(gvlistado.GetRowValues(seleccion, "DES_SISTEMA_INGLES"));
           int check = Convert.ToInt32(gvlistado.GetRowValues(seleccion, "IND_ELIMINAR"));
           if (check == 0) { chekedEstadoM.Checked = true; chekedEstadoM.Text = "Activo"; } else { chekedEstadoM.Checked = false; chekedEstadoM.Text = "Inactivo"; }
            pcModificarSistema.ShowOnPageLoad = true;
            return;
        }

        protected void btnSalir_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/Repuestos/wFrmManualesPartesVehiculosSistemas.aspx?id=" + idSeguridad);
        }

        protected void btnPopAceptar_Click(object sender, EventArgs e)
        {
            try
            {
                T_MAN_SISTEMA obj_t_man_sistema = new T_MAN_SISTEMA();

                obj_t_man_sistema.ID_SISTEMA = Convert.ToInt32(txtId_Sistema.Text);
                obj_t_man_sistema.DES_SISTEMA = Convert.ToString(gvlistado.GetRowValues(gvlistado.FocusedRowIndex, "DES_SISTEMA"));
                obj_t_man_sistema.DES_SISTEMA_INGLES = Convert.ToString(gvlistado.GetRowValues(gvlistado.FocusedRowIndex, "DES_SISTEMA_INGLES"));
                obj_t_man_sistema.IND_ELIMINAR = 1;

                BL_T_Man_SistemaSub.Modificar_Sub_Sistema(obj_t_man_sistema);

                listadoT_Sistema();
            }
            catch (RunException exc)
            {
                GuardarExceptionLog(exc.Message, exc, "btnPopAceptar_Click");
                MensajesError(exc.Message, exc, "btnPopAceptar_Click");
            }
        }


        private void GuardarExceptionLog(String msgUsu, Exception ex, String metError)
        {
            try
            {
                String msgReal, fhError, pagError, codUsu;
                msgReal = (ex.InnerException != null) ? ex.InnerException.Message : ex.Message;
                pagError = new System.IO.FileInfo(Page.Request.Url.AbsolutePath).Name;
                codUsu = Session["User"].ToString();
                fhError = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");

                System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(ex, true);
                int number = 0;
                for (int i = 0; i < trace.FrameCount; i++)
                {
                    System.Diagnostics.StackFrame sf = trace.GetFrame(i);
                    number = sf.GetFileLineNumber();
                }
                fhError = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
                new Logg().ErrorLog(Server.MapPath("~/Logs/ErrorLog.csv"), msgUsu, msgReal, pagError, metError, codUsu, number);
            }
            catch (DataException e) { MensajesError(e.Message, e, "GuardarExceptionLog"); }
            catch (RunException re) { MensajesError(re.Message, re, "GuardarExceptionLog"); }

        }

        private void MensajesError(String msgUsu, Exception ex, String metError)
        {
            Crosland.Automotriz.Web.UserControl.MensajeError uc = (Crosland.Automotriz.Web.UserControl.MensajeError)Master.FindControl("ucErrorMensaje");
            String msgReal, fhError, pagError, codUsu;
            msgReal = (ex.InnerException != null) ? ex.InnerException.Message : ex.Message;
            pagError = new System.IO.FileInfo(Page.Request.Url.AbsolutePath).Name;
            codUsu = Session["User"].ToString();
            fhError = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
            System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(ex, true);
            int number = 0;
            for (int i = 0; i < trace.FrameCount; i++)
            {
                System.Diagnostics.StackFrame sf = trace.GetFrame(i);
                number = sf.GetFileLineNumber();
            }
            uc.Errores(msgUsu, msgReal, fhError, pagError, metError, codUsu, number);
        }

        protected void gvlistado_HtmlRowPrepared(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewTableRowEventArgs e)
        {
            if (e.RowType != GridViewRowType.Data) return;
            int ind_estado = Convert.ToInt32(e.GetValue("IND_ELIMINAR"));
            if (ind_estado == 1)
                e.Row.BackColor = Color.Red;
        }

     
    }
}